home *** CD-ROM | disk | FTP | other *** search
/ Visual Basic Graphics Programming (2nd Edition) / Visual Basic Graphics Programming 2nd Edition.iso / Src / Ch1 / PaintPic.frm (.txt) < prev    next >
Visual Basic Form  |  1999-03-18  |  8KB  |  245 lines

  1. VERSION 5.00
  2. Begin VB.Form frmPaintPic 
  3.    Caption         =   "PaintPic"
  4.    ClientHeight    =   4455
  5.    ClientLeft      =   2085
  6.    ClientTop       =   1200
  7.    ClientWidth     =   7320
  8.    LinkTopic       =   "Form1"
  9.    PaletteMode     =   1  'UseZOrder
  10.    ScaleHeight     =   4455
  11.    ScaleWidth      =   7320
  12.    Begin VB.PictureBox picSource 
  13.       AutoRedraw      =   -1  'True
  14.       AutoSize        =   -1  'True
  15.       BorderStyle     =   0  'None
  16.       Height          =   960
  17.       Index           =   1
  18.       Left            =   0
  19.       Picture         =   "PaintPic.frx":0000
  20.       ScaleHeight     =   64
  21.       ScaleMode       =   3  'Pixel
  22.       ScaleWidth      =   64
  23.       TabIndex        =   12
  24.       Top             =   1320
  25.       Width           =   960
  26.    End
  27.    Begin VB.CommandButton cmdClearResult 
  28.       Caption         =   "Clear Result"
  29.       Height          =   495
  30.       Left            =   3480
  31.       TabIndex        =   11
  32.       Top             =   1320
  33.       Width           =   1215
  34.    End
  35.    Begin VB.PictureBox picSource 
  36.       AutoRedraw      =   -1  'True
  37.       AutoSize        =   -1  'True
  38.       BorderStyle     =   0  'None
  39.       Height          =   960
  40.       Index           =   3
  41.       Left            =   0
  42.       Picture         =   "PaintPic.frx":0882
  43.       ScaleHeight     =   64
  44.       ScaleMode       =   3  'Pixel
  45.       ScaleWidth      =   64
  46.       TabIndex        =   7
  47.       Top             =   3480
  48.       Width           =   960
  49.    End
  50.    Begin VB.CommandButton cmdCopy 
  51.       Caption         =   "Copy ==>"
  52.       Height          =   495
  53.       Left            =   3480
  54.       TabIndex        =   6
  55.       Top             =   1920
  56.       Width           =   1215
  57.    End
  58.    Begin VB.PictureBox picSource 
  59.       AutoRedraw      =   -1  'True
  60.       AutoSize        =   -1  'True
  61.       BorderStyle     =   0  'None
  62.       Height          =   960
  63.       Index           =   2
  64.       Left            =   0
  65.       Picture         =   "PaintPic.frx":1CC4
  66.       ScaleHeight     =   64
  67.       ScaleMode       =   3  'Pixel
  68.       ScaleWidth      =   64
  69.       TabIndex        =   5
  70.       Top             =   2400
  71.       Width           =   960
  72.    End
  73.    Begin VB.ListBox lstOpcode 
  74.       Height          =   4155
  75.       Left            =   1080
  76.       TabIndex        =   4
  77.       Top             =   240
  78.       Width           =   2295
  79.    End
  80.    Begin VB.PictureBox picDestination 
  81.       AutoRedraw      =   -1  'True
  82.       AutoSize        =   -1  'True
  83.       Height          =   2520
  84.       Index           =   2
  85.       Left            =   4800
  86.       ScaleHeight     =   164
  87.       ScaleMode       =   3  'Pixel
  88.       ScaleWidth      =   164
  89.       TabIndex        =   3
  90.       Top             =   1920
  91.       Width           =   2520
  92.    End
  93.    Begin VB.PictureBox picDestination 
  94.       AutoRedraw      =   -1  'True
  95.       AutoSize        =   -1  'True
  96.       Height          =   510
  97.       Index           =   0
  98.       Left            =   4800
  99.       ScaleHeight     =   30
  100.       ScaleMode       =   3  'Pixel
  101.       ScaleWidth      =   30
  102.       TabIndex        =   2
  103.       Top             =   240
  104.       Width           =   510
  105.    End
  106.    Begin VB.PictureBox picDestination 
  107.       AutoRedraw      =   -1  'True
  108.       AutoSize        =   -1  'True
  109.       Height          =   1020
  110.       Index           =   1
  111.       Left            =   4800
  112.       ScaleHeight     =   64
  113.       ScaleMode       =   3  'Pixel
  114.       ScaleWidth      =   64
  115.       TabIndex        =   1
  116.       Top             =   840
  117.       Width           =   1020
  118.    End
  119.    Begin VB.PictureBox picSource 
  120.       AutoRedraw      =   -1  'True
  121.       AutoSize        =   -1  'True
  122.       BorderStyle     =   0  'None
  123.       Height          =   960
  124.       Index           =   0
  125.       Left            =   0
  126.       Picture         =   "PaintPic.frx":3106
  127.       ScaleHeight     =   64
  128.       ScaleMode       =   3  'Pixel
  129.       ScaleWidth      =   64
  130.       TabIndex        =   0
  131.       Top             =   240
  132.       Width           =   960
  133.    End
  134.    Begin VB.Label Label1 
  135.       Alignment       =   2  'Center
  136.       Caption         =   "Result"
  137.       Height          =   255
  138.       Index           =   2
  139.       Left            =   4800
  140.       TabIndex        =   10
  141.       Top             =   0
  142.       Width           =   735
  143.    End
  144.    Begin VB.Label Label1 
  145.       Alignment       =   2  'Center
  146.       Caption         =   "Opcode"
  147.       Height          =   255
  148.       Index           =   1
  149.       Left            =   1080
  150.       TabIndex        =   9
  151.       Top             =   0
  152.       Width           =   2295
  153.    End
  154.    Begin VB.Label Label1 
  155.       Alignment       =   2  'Center
  156.       Caption         =   "Source"
  157.       Height          =   255
  158.       Index           =   0
  159.       Left            =   0
  160.       TabIndex        =   8
  161.       Top             =   0
  162.       Width           =   975
  163.    End
  164. Attribute VB_Name = "frmPaintPic"
  165. Attribute VB_GlobalNameSpace = False
  166. Attribute VB_Creatable = False
  167. Attribute VB_PredeclaredId = True
  168. Attribute VB_Exposed = False
  169. Option Explicit
  170. Private SelectedSource As Integer
  171. ' ***********************************************
  172. ' Add an opcode's name and value to the list of
  173. ' choices.
  174. ' ***********************************************
  175. Sub AddOpcode(name As String, value As Long)
  176.     lstOpcode.AddItem name
  177.     lstOpcode.ItemData(lstOpcode.NewIndex) = value
  178. End Sub
  179. ' Clear the result.
  180. Private Sub cmdClearResult_Click()
  181. Dim dest As Integer
  182.     ' Clear all destination PictureBoxes.
  183.     For dest = 0 To picDestination.UBound
  184.         picDestination(dest).Cls
  185.     Next dest
  186. End Sub
  187. ' Load the opcode choices.
  188. Private Sub Form_Load()
  189. Dim copy_index As Integer
  190.     AddOpcode "vbBlackness", vbBlackness
  191.     AddOpcode "vbDstInvert", vbDstInvert
  192.     AddOpcode "vbMergeCopy", vbMergeCopy
  193.     AddOpcode "vbMergePaint", vbMergePaint
  194.     AddOpcode "vbNotSrcCopy", vbNotSrcCopy
  195.     AddOpcode "vbSrcErase", vbSrcErase
  196.     AddOpcode "vbPatCopy", vbPatCopy
  197.     AddOpcode "vbPatInvert", vbPatInvert
  198.     AddOpcode "vbPatPaint", vbPatPaint
  199.     AddOpcode "vbSrcAnd", vbSrcAnd
  200.     AddOpcode "vbSrcCopy", vbSrcCopy
  201.     copy_index = lstOpcode.NewIndex
  202.     AddOpcode "vbSrcErase", vbSrcErase
  203.     AddOpcode "vbSrcInvert", vbSrcInvert
  204.     AddOpcode "vbSrcPaint", vbSrcPaint
  205.     AddOpcode "vbWhiteness", vbWhiteness
  206.     ' Start with vbSrcCopy.
  207.     lstOpcode.ListIndex = copy_index
  208.     ' Select the first source image.
  209.     picSource_Click (0)
  210. End Sub
  211. ' Copy the image.
  212. Private Sub cmdCopy_Click()
  213. Dim source_wid As Single
  214. Dim source_hgt As Single
  215. Dim dest_wid As Single
  216. Dim dest_hgt As Single
  217. Dim opcode As Long
  218. Dim dest_num As Integer
  219.     ' Get the source image's dimenstions.
  220.     source_wid = picSource(SelectedSource).ScaleWidth
  221.     source_hgt = picSource(SelectedSource).ScaleHeight
  222.     ' Get the selected opcode.
  223.     opcode = lstOpcode.ItemData(lstOpcode.ListIndex)
  224.     ' Copy the image into the destination images.
  225.     For dest_num = 0 To picDestination.UBound
  226.         With picDestination(dest_num)
  227.             ' Get the destination dimensions.
  228.             dest_wid = picDestination(dest_num).ScaleWidth
  229.             dest_hgt = picDestination(dest_num).ScaleHeight
  230.             ' Copy the image.
  231.             picDestination(dest_num).PaintPicture _
  232.                 picSource(SelectedSource).Picture, _
  233.                 0, 0, dest_wid, dest_hgt, _
  234.                 0, 0, source_wid, source_hgt, _
  235.                 opcode
  236.         End With
  237.     Next dest_num
  238. End Sub
  239. ' Save the index of the selected source.
  240. Private Sub picSource_Click(Index As Integer)
  241.     picSource(SelectedSource).BorderStyle = vbBSNone
  242.     SelectedSource = Index
  243.     picSource(SelectedSource).BorderStyle = vbFixedSingle
  244. End Sub
  245.